package pe.gob.mintra.trabajadoreshogar.action;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.event.AjaxBehaviorEvent;
import javax.servlet.http.HttpSession;

import org.primefaces.context.RequestContext;
import org.primefaces.event.SelectEvent;

import pe.gob.mintra.trabajadoreshogar.bean.DatLab;
import pe.gob.mintra.trabajadoreshogar.bean.Departamento;
import pe.gob.mintra.trabajadoreshogar.bean.Distrito;
import pe.gob.mintra.trabajadoreshogar.bean.Empleador;
import pe.gob.mintra.trabajadoreshogar.bean.NivelEducativo;
import pe.gob.mintra.trabajadoreshogar.bean.Provincia;
import pe.gob.mintra.trabajadoreshogar.bean.Sucursal;
import pe.gob.mintra.trabajadoreshogar.bean.TipoDocumentoIdentidad;
import pe.gob.mintra.trabajadoreshogar.bean.TipoVia;
import pe.gob.mintra.trabajadoreshogar.bean.Trabajador;
import pe.gob.mintra.trabajadoreshogar.bean.Usuario;
import pe.gob.mintra.trabajadoreshogar.bean.Zona;
import pe.gob.mintra.trabajadoreshogar.service.DatLabService;
import pe.gob.mintra.trabajadoreshogar.service.EmpleadorService;
import pe.gob.mintra.trabajadoreshogar.service.MantenimientoService;
import pe.gob.mintra.trabajadoreshogar.service.SucursalService;
import pe.gob.mintra.trabajadoreshogar.service.TrabajadorService;
import pe.gob.mintra.trabajadoreshogar.util.Utilitario;

@ManagedBean(name = "trabajadorAction")
@SessionScoped
public class TrabajadorAction implements Serializable {

	private List<Departamento> lstDepartamentoTrab;
	private List<Provincia> lstProvinciaTrab;
	private List<Distrito> lstDistritoTrab;
	private List<TipoVia> lstTipoViaTrab;
	private List<Zona> lstZonaTrab;
	private List<TipoDocumentoIdentidad> lstTipoDocumentoIdentidadTrab;
	private List<NivelEducativo> lstNivelEducativo;
	private Departamento objDepartamentoTrab = new Departamento();
	private Provincia objProvinciaTrab = new Provincia();
	private Distrito objDistritoTrab = new Distrito();
	private TipoVia objTipoViaTrab = new TipoVia();
	private Zona objZonaTrab = new Zona();
	private NivelEducativo objNivelEducativo= new NivelEducativo();
	private List<Sucursal> lstSucursalTrab;
	private String nroDocumentoTrab;
	private Sucursal objSucursalTrab = new Sucursal();
	private TipoDocumentoIdentidad objTipoDocumentoIdentidadTrab = new TipoDocumentoIdentidad();
	private MantenimientoService servicioMantenimiento = new MantenimientoService();

	// @ManagedProperty(name = "objTrabajador", value = "#{objTrabajador}")

	private Trabajador objTrabajador;
	@ManagedProperty(name = "objDatLab", value = "#{objDatLab}")
	private DatLab objDatLab = null;
	@ManagedProperty("#{usuarioAction.objUsuario}")
	private Usuario objUsuario;
	
	
	
	

	
	
	



	
	private Sucursal direccionSeleccionada;

	private boolean datosEditables = false;
	private boolean muestraBotonAgregarPersona = false;
	private boolean muestraBotonActualizarPersona = false;
	private boolean muestraBotonAgregarDireccion = false;
	public boolean muestraBotonActualizarDireccion = false;
	private boolean muestraBotonGrabarTrabajador = false;
	private boolean deshabilitaBusqueda = false;

	private Utilitario objUtilitario = new Utilitario();
	
	
	
	
	
	

	public NivelEducativo getObjNivelEducativo() {
		return objNivelEducativo;
	}

	public void setObjNivelEducativo(NivelEducativo objNivelEducativo) {
		this.objNivelEducativo = objNivelEducativo;
	}

	public List<NivelEducativo> getLstNivelEducativo() {
		return lstNivelEducativo;
	}

	public void setLstNivelEducativo(List<NivelEducativo> lstNivelEducativo) {
		this.lstNivelEducativo = lstNivelEducativo;
	}

	public Usuario getObjUsuario() {
		return objUsuario;
	}

	public void setObjUsuario(Usuario objUsuario) {
		this.objUsuario = objUsuario;
	}

	public Sucursal getDireccionSeleccionada() {
		return direccionSeleccionada;
	}

	public void setDireccionSeleccionada(Sucursal direccionSeleccionada) {
		this.direccionSeleccionada = direccionSeleccionada;
	}

	public DatLab getObjDatLab() {
		return objDatLab;
	}

	public void setObjDatLab(DatLab objDatLab) {
		this.objDatLab = objDatLab;
	}

	public boolean isDeshabilitaBusqueda() {
		return deshabilitaBusqueda;
	}

	public void setDeshabilitaBusqueda(boolean deshabilitaBusqueda) {
		this.deshabilitaBusqueda = deshabilitaBusqueda;
	}

	public boolean isMuestraBotonActualizarDireccion() {
		return muestraBotonActualizarDireccion;
	}

	public void setMuestraBotonActualizarDireccion(
			boolean muestraBotonActualizarDireccion) {
		this.muestraBotonActualizarDireccion = muestraBotonActualizarDireccion;
	}

	public boolean isMuestraBotonActualizarPersona() {
		return muestraBotonActualizarPersona;
	}

	public void setMuestraBotonActualizarPersona(
			boolean muestraBotonActualizarPersona) {
		this.muestraBotonActualizarPersona = muestraBotonActualizarPersona;
	}

	public TrabajadorAction() {
		lstNivelEducativo= new ArrayList<NivelEducativo>();
		lstNivelEducativo=servicioMantenimiento.listarNivelEducativo();
		
		lstDepartamentoTrab = new ArrayList<Departamento>();
		lstDepartamentoTrab = servicioMantenimiento.listarDepartamento();
		lstProvinciaTrab = new ArrayList<Provincia>();
		lstProvinciaTrab = servicioMantenimiento
				.listarProvincia(lstDepartamentoTrab.get(0));
		lstDistritoTrab = new ArrayList<Distrito>();
		lstDistritoTrab = servicioMantenimiento.listarDistrito(lstProvinciaTrab
				.get(0));
		lstTipoViaTrab = new ArrayList<TipoVia>();
		lstTipoViaTrab = servicioMantenimiento.listarTipoVia();
		lstZonaTrab = new ArrayList<Zona>();
		lstZonaTrab = servicioMantenimiento.listarZona();

		lstSucursalTrab = new ArrayList<Sucursal>();
		
		lstTipoDocumentoIdentidadTrab = new ArrayList<TipoDocumentoIdentidad>();
		lstTipoDocumentoIdentidadTrab = servicioMantenimiento
				.listarTipoDocumentoIdentidadTrab();
		muestraBotonAgregarPersona = true;
		muestraBotonActualizarPersona = true;
		muestraBotonAgregarDireccion = true;
		System.out.println("TrabajadorAction");
		muestraBotonGrabarTrabajador = true;
		muestraBotonActualizarDireccion = true;
		deshabilitaBusqueda = false;

		objTrabajador = new Trabajador();

	}

	public List<Departamento> getLstDepartamentoTrab() {
		return lstDepartamentoTrab;
	}

	public void setLstDepartamentoTrab(List<Departamento> lstDepartamentoTrab) {
		this.lstDepartamentoTrab = lstDepartamentoTrab;
	}

	public List<Provincia> getLstProvinciaTrab() {
		return lstProvinciaTrab;
	}

	public void setLstProvinciaTrab(List<Provincia> lstProvinciaTrab) {
		this.lstProvinciaTrab = lstProvinciaTrab;
	}

	public List<Distrito> getLstDistritoTrab() {
		return lstDistritoTrab;
	}

	public void setLstDistritoTrab(List<Distrito> lstDistritoTrab) {
		this.lstDistritoTrab = lstDistritoTrab;
	}

	public List<TipoVia> getLstTipoViaTrab() {
		return lstTipoViaTrab;
	}

	public void setLstTipoViaTrab(List<TipoVia> lstTipoViaTrab) {
		this.lstTipoViaTrab = lstTipoViaTrab;
	}

	public List<Zona> getLstZonaTrab() {
		return lstZonaTrab;
	}

	public void setLstZonaTrab(List<Zona> lstZonaTrab) {
		this.lstZonaTrab = lstZonaTrab;
	}

	public List<TipoDocumentoIdentidad> getLstTipoDocumentoIdentidadTrab() {
		return lstTipoDocumentoIdentidadTrab;
	}

	public void setLstTipoDocumentoIdentidadTrab(
			List<TipoDocumentoIdentidad> lstTipoDocumentoIdentidadTrab) {
		this.lstTipoDocumentoIdentidadTrab = lstTipoDocumentoIdentidadTrab;
	}

	public Departamento getObjDepartamentoTrab() {
		return objDepartamentoTrab;
	}

	public void setObjDepartamentoTrab(Departamento objDepartamentoTrab) {
		this.objDepartamentoTrab = objDepartamentoTrab;
	}

	public Provincia getObjProvinciaTrab() {
		return objProvinciaTrab;
	}

	public void setObjProvinciaTrab(Provincia objProvinciaTrab) {
		this.objProvinciaTrab = objProvinciaTrab;
	}

	public Distrito getObjDistritoTrab() {
		return objDistritoTrab;
	}

	public void setObjDistritoTrab(Distrito objDistritoTrab) {
		this.objDistritoTrab = objDistritoTrab;
	}

	public TipoVia getObjTipoViaTrab() {
		return objTipoViaTrab;
	}

	public void setObjTipoViaTrab(TipoVia objTipoViaTrab) {
		this.objTipoViaTrab = objTipoViaTrab;
	}

	public Zona getObjZonaTrab() {
		return objZonaTrab;
	}

	public void setObjZonaTrab(Zona objZonaTrab) {
		this.objZonaTrab = objZonaTrab;
	}

	public List<Sucursal> getLstSucursalTrab() {
		return lstSucursalTrab;
	}

	public void setLstSucursalTrab(List<Sucursal> lstSucursalTrab) {
		this.lstSucursalTrab = lstSucursalTrab;
	}

	public String getNroDocumentoTrab() {
		return nroDocumentoTrab;
	}

	public void setNroDocumentoTrab(String nroDocumentoTrab) {
		this.nroDocumentoTrab = nroDocumentoTrab;
	}

	public Sucursal getObjSucursalTrab() {
		return objSucursalTrab;
	}

	public void setObjSucursalTrab(Sucursal objSucursalTrab) {
		this.objSucursalTrab = objSucursalTrab;
	}

	public TipoDocumentoIdentidad getObjTipoDocumentoIdentidadTrab() {
		return objTipoDocumentoIdentidadTrab;
	}

	public void setObjTipoDocumentoIdentidadTrab(
			TipoDocumentoIdentidad objTipoDocumentoIdentidadTrab) {
		this.objTipoDocumentoIdentidadTrab = objTipoDocumentoIdentidadTrab;
	}

	public MantenimientoService getServicioMantenimiento() {
		return servicioMantenimiento;
	}

	public void setServicioMantenimiento(
			MantenimientoService servicioMantenimiento) {
		this.servicioMantenimiento = servicioMantenimiento;
	}

	public Trabajador getObjTrabajador() {
		return objTrabajador;
	}

	public void setObjTrabajador(Trabajador objTrabajador) {
		this.objTrabajador = objTrabajador;
	}

	public boolean isMuestraBotonAgregarDireccion() {
		return muestraBotonAgregarDireccion;
	}

	public void setMuestraBotonAgregarDireccion(
			boolean muestraBotonAgregarDireccion) {
		this.muestraBotonAgregarDireccion = muestraBotonAgregarDireccion;
	}

	public boolean isMuestraBotonGrabarTrabajador() {
		return muestraBotonGrabarTrabajador;
	}

	public void setMuestraBotonGrabarTrabajador(
			boolean muestraBotonGrabarTrabajador) {
		this.muestraBotonGrabarTrabajador = muestraBotonGrabarTrabajador;
	}

	public void cargarProvinciaTrab(AjaxBehaviorEvent event) {

		lstProvinciaTrab = new ArrayList<Provincia>();

		objDepartamentoTrab.setV_coddep(objSucursalTrab.getV_coddep());

		lstProvinciaTrab = servicioMantenimiento
				.listarProvincia(objDepartamentoTrab);
		objProvinciaTrab.setV_coddep(objDepartamentoTrab.getV_coddep());
		lstDistritoTrab = servicioMantenimiento.listarDistrito(lstProvinciaTrab
				.get(0));

	}

	public void cargarDistritoTrab(AjaxBehaviorEvent event) {

		lstDistritoTrab = new ArrayList<Distrito>();

		objProvinciaTrab.setV_coddep(objSucursalTrab.getV_coddep());
		objProvinciaTrab.setV_codpro(objSucursalTrab.getV_codpro());

		lstDistritoTrab = servicioMantenimiento
				.listarDistrito(objProvinciaTrab);

	}

	public boolean isDatosEditables() {
		return datosEditables;
	}

	public void setDatosEditables(boolean datosEditables) {
		this.datosEditables = datosEditables;
	}

	public boolean isMuestraBotonAgregarPersona() {
		return muestraBotonAgregarPersona;
	}

	public void setMuestraBotonAgregarPersona(boolean muestraBotonAgregarPersona) {
		this.muestraBotonAgregarPersona = muestraBotonAgregarPersona;
	}
	
	Trabajador trabEntrada = new Trabajador();

	public void obtenerTrabajador() {
		
		TrabajadorService servicioTrabajador = new TrabajadorService();
		
		
		muestraBotonActualizarDireccion = true;
		
		
		
		if(!trabEntrada.getV_numdoc().equals("-2") && !trabEntrada.getV_codtdocide().equals("-1")){
			trabEntrada.setV_numdoc(trabEntrada.getV_numdoc());
			trabEntrada.setV_codtdocide(trabEntrada.getV_codtdocide());
			
			nroDocumentoTrab=trabEntrada.getV_numdoc();
			objTipoDocumentoIdentidadTrab.setV_codtdocide(trabEntrada.getV_codtdocide());
			
			
			
		}else{
			trabEntrada.setV_numdoc(nroDocumentoTrab);
			trabEntrada.setV_codtdocide(objTipoDocumentoIdentidadTrab
					.getV_codtdocide());
		}
		
		
		Trabajador t = servicioTrabajador.listarPersona(trabEntrada);
		SucursalService servicioSucursal = new SucursalService();
				
		
		if (t != null) {
			
			
			muestraBotonAgregarPersona = true;
			muestraBotonActualizarPersona = false;
			muestraBotonAgregarDireccion = false;
			deshabilitaBusqueda = true;
			System.out.println("ENCONTRO PERSONA ");
			objTrabajador = t;
			
			
			objNivelEducativo.setV_codnivedu(objTrabajador.getV_codnivedu());
			
			if (objTrabajador.getV_flatradis().equals("1")) {
				objTrabajador.setSeleccionaDiscapacidad(true);
				
				
				if(objTrabajador.getV_flgtiploc().equals("1")){
					objTrabajador.getOpcionesDiscapacidadSeleccionadas().add("LOC");
					
				}
				if(objTrabajador.getV_flgtipcom().equals("1")){
					objTrabajador.getOpcionesDiscapacidadSeleccionadas().add("COM");
					
				}
				if(objTrabajador.getV_flgtipdes().equals("1")){
					objTrabajador.getOpcionesDiscapacidadSeleccionadas().add("DES");
					
				}
				if(objTrabajador.getV_flgtipcon().equals("1")){
					objTrabajador.getOpcionesDiscapacidadSeleccionadas().add("CON");
					
				}
				if(objTrabajador.getV_flgtipsit().equals("1")){
					objTrabajador.getOpcionesDiscapacidadSeleccionadas().add("SIT");
					
				}
				
				

			} else {
				objTrabajador.setSeleccionaDiscapacidad(false);
				
			}
			
			
			
			if(objTrabajador.getV_flgme().equals("S")){
				objTrabajador.setRadioSeleccionado("ME");
			}
			if(objTrabajador.getV_flgna().equals("S")){
				objTrabajador.setRadioSeleccionado("NA");
			}
			if(objTrabajador.getV_flgam().equals("S")){
				objTrabajador.setRadioSeleccionado("AM");
			}
			
			
			
			
			objTrabajador.setV_trabajador(objTrabajador.getV_apepater() + " "
					+ objTrabajador.getV_apemater() + " "
					+ objTrabajador.getV_nombres());
			Empleador emplEntrada = new Empleador();
			emplEntrada.setV_numdoc(nroDocumentoTrab);
			emplEntrada.setV_codtdocide(objTipoDocumentoIdentidadTrab
					.getV_codtdocide());
			lstSucursalTrab = servicioSucursal
					.listarSucursalDomicilio(emplEntrada);
			if (lstSucursalTrab.size() == 0) {
				lstSucursalTrab = new ArrayList<Sucursal>();
				
			} else {
				muestraBotonGrabarTrabajador = false;

			}
			
			
			

		} else {
			objTrabajador = new Trabajador();
			deshabilitaBusqueda = false;
			muestraBotonAgregarPersona = false;
			muestraBotonActualizarPersona = true;
			objTrabajador.setV_trabajador("NO ENCONTRO PERSONA");
			System.out.println("NO ENCONTRO PERSONA");
			lstSucursalTrab = new ArrayList<Sucursal>();
			
			datosEditables = false;
			muestraBotonAgregarDireccion = true;
		
		}

		
			
	}

	public void nuevaBusquedaTrabajador() {
		System.out.println("NUEVA BUSQUEDA");
		datosEditables = false;
		objTrabajador = new Trabajador();
		nroDocumentoTrab = "";
		lstSucursalTrab = new ArrayList<Sucursal>();

		muestraBotonAgregarDireccion = true;
		muestraBotonActualizarDireccion = true;
		muestraBotonGrabarTrabajador = true;
		muestraBotonActualizarPersona = true;
		deshabilitaBusqueda = false;
		
		trabEntrada = new Trabajador();
		
	}

	public void agregarPersona() {

		TrabajadorService servicioTrabajador = new TrabajadorService();
		objTrabajador.setV_numdoc(nroDocumentoTrab);
		objTrabajador.setV_codtdocide(objTipoDocumentoIdentidadTrab
				.getV_codtdocide());

		// SETEA DATOS AUDITORIA
		objTrabajador.setV_codsis(objUsuario.getV_codsis());
		objTrabajador.setV_codusureg(objUsuario.getV_codusu());
		objTrabajador.setV_hostreg(objUtilitario.hostRealizaAccion());

		if (objTrabajador.isSeleccionaDiscapacidad() == true) {
			objTrabajador.setV_flatradis("1");

			for (String opciones : objTrabajador
					.getOpcionesDiscapacidadSeleccionadas()) {
				if (opciones.equals("LOC")) {
					objTrabajador.setV_flgtiploc("1");
				}
				if (opciones.equals("COM")) {
					objTrabajador.setV_flgtipcom("1");
				}
				if (opciones.equals("DES")) {
					objTrabajador.setV_flgtipdes("1");
				}
				if (opciones.equals("CON")) {
					objTrabajador.setV_flgtipcon("1");
				}
				if (opciones.equals("SIT")) {
					objTrabajador.setV_flgtipsit("1");
				}
			}

		} else {
			objTrabajador.setV_flatradis("0");
			objTrabajador.setV_flgtiploc("0");
			objTrabajador.setV_flgtipcom("0");
			objTrabajador.setV_flgtipdes("0");
			objTrabajador.setV_flgtipcon("0");
			objTrabajador.setV_flgtipsit("0");
		}
		
		if(objTrabajador.getRadioSeleccionado().equals("ME")){
			objTrabajador.setV_flgme("S");
		}
		
		if(objTrabajador.getRadioSeleccionado().equals("NA")){
			objTrabajador.setV_flgna("S");
		}
		
		if(objTrabajador.getRadioSeleccionado().equals("AM")){
			objTrabajador.setV_flgam("S");
		}
		
		
		objTrabajador.setV_codnivedu(objNivelEducativo.getV_codnivedu());

		servicioTrabajador.insertarTrabajador(objTrabajador);
		obtenerTrabajador();

	}

	public void actualizarPersona() {
		TrabajadorService servicioTrabajador = new TrabajadorService();

		// SETEA DATOS AUDITORIA
		objTrabajador.setV_codusumod(objUsuario.getV_codusu());
		objTrabajador.setV_hostmod(objUtilitario.hostRealizaAccion());
		objTrabajador.setV_codsismod(objUsuario.getV_codsis());
		
		//objNivelEducativo.setV_codnivedu(objTrabajador.getV_codnivedu());
		
		
		if (objTrabajador.isSeleccionaDiscapacidad() == true) {
			System.out.println("ES TRUE");
			objTrabajador.setV_flatradis("1");
			
			
			objTrabajador.setV_flgtiploc("0");
			objTrabajador.setV_flgtipcom("0");
			objTrabajador.setV_flgtipdes("0");
			objTrabajador.setV_flgtipcon("0");
			objTrabajador.setV_flgtipsit("0");
			
			for (String opciones : objTrabajador
					.getOpcionesDiscapacidadSeleccionadas()) {
				
				
				System.out.println("OPCIONES ENVIADAS "+opciones);
				
				
				
				if (opciones.equals("LOC")) {
					objTrabajador.setV_flgtiploc("1");
				}
				else if (opciones.equals("COM")) {
					objTrabajador.setV_flgtipcom("1");
				}
				else if (opciones.equals("DES")) {
					objTrabajador.setV_flgtipdes("1");
				}
				else if (opciones.equals("CON")) {
					objTrabajador.setV_flgtipcon("1");
				}
				else if (opciones.equals("SIT")) {
					objTrabajador.setV_flgtipsit("1");
				}
			}
			
			

		} else {
			objTrabajador.setV_flatradis("0");
			objTrabajador.setV_flgtiploc("0");
			objTrabajador.setV_flgtipcom("0");
			objTrabajador.setV_flgtipdes("0");
			objTrabajador.setV_flgtipcon("0");
			objTrabajador.setV_flgtipsit("0");
		}
		
		if(objTrabajador.getRadioSeleccionado().equals("ME")){
			objTrabajador.setV_flgme("S");
		}else{
			objTrabajador.setV_flgme("N");
		}
		
		if(objTrabajador.getRadioSeleccionado().equals("NA")){
			objTrabajador.setV_flgna("S");
		}else{
			objTrabajador.setV_flgna("N");
		}
		
		if(objTrabajador.getRadioSeleccionado().equals("AM")){
			objTrabajador.setV_flgam("S");
		}else{
			objTrabajador.setV_flgam("N");
		}
		
		
		System.out.println("FLAGS");
		System.out.println("se selecciono discapacidad "+objTrabajador.getV_flatradis());
		System.out.println("LOC "+objTrabajador.getV_flgtiploc());
		System.out.println("COM "+objTrabajador.getV_flgtipcom());
		System.out.println("DES "+objTrabajador.getV_flgtipdes());
		System.out.println("CON "+objTrabajador.getV_flgtipcon());
		System.out.println("SIT "+objTrabajador.getV_flgtipsit());
		
		objTrabajador.setV_codnivedu(objNivelEducativo.getV_codnivedu());
		
		servicioTrabajador.actualizarTrabajador(objTrabajador);
		obtenerTrabajador();
	}

	public void grabarDireccionTrabajador() {
		System.out.println("ENTRO A GRABAR DIRECCION TRABAJADOR");
		
		/*
		System.out.println("COD DEP "+objSucursalTrab.getV_coddep());
		System.out.println("COD PROV "+objSucursalTrab.getV_codpro());
		System.out.println("COD DIS "+objSucursalTrab.getV_coddis());
		*/
		
		
		
		SucursalService servicioSucursal = new SucursalService();
		objSucursalTrab.setV_codtdocide(objTrabajador.getV_codtdocide());
		objSucursalTrab.setV_codemp(objTrabajador.getV_numdoc());
		
		objSucursalTrab.setV_coddep("15");
		objSucursalTrab.setV_codpro("01");

		// SETEA DATOS AUDITORIA
		objSucursalTrab.setV_codsis(objUsuario.getV_codsis());
		objSucursalTrab.setV_nomusureg(objUsuario.getV_codusu());
		objSucursalTrab.setV_hostreg(objUtilitario.hostRealizaAccion());

		servicioSucursal.insertarSucursalDomicilio(objSucursalTrab);

		Empleador emplEntrada = new Empleador();
		emplEntrada.setV_numdoc(objTrabajador.getV_numdoc());
		emplEntrada.setV_codtdocide(objTrabajador.getV_codtdocide());
		lstSucursalTrab = servicioSucursal.listarSucursalDomicilio(emplEntrada);

		objSucursalTrab = new Sucursal();
	}

	public void actualizarDireccionTrabajador() {
		SucursalService servicioSucursal = new SucursalService();

		// SETEA DATOS AUDITORIA
		objSucursalTrab.setV_nomusumod(objUsuario.getV_codusu());
		objSucursalTrab.setV_hostmod(objUtilitario.hostRealizaAccion());

		servicioSucursal.actualizarSucursalDomicilio(objSucursalTrab);
		obtenerTrabajador();
	}

	public/* String */void grabarTrabajador() {

		System.out.println("ENTRA GRABAR TRABAJADOR");
		System.out.println(objDatLab.getN_cordatlab());
		DatLabService servicioDatLab = new DatLabService();
		objDatLab.setV_numdoc(objTrabajador.getV_numdoc());
		objDatLab.setV_codtdocide(objTrabajador.getV_codtdocide());
		objDatLab.setN_numcordom(objSucursalTrab.getN_codsuc());

		System.out.println("COD DOC " + objTrabajador.getV_codtdocide());
		System.out.println("NUMDOC " + objTrabajador.getV_numdoc());
		System.out.println("CORR DOM " + objSucursalTrab.getN_codsuc());

		// SETEA DATOS AUDITORIA
		objDatLab.setV_codusumod(objUsuario.getV_codusu());
		objDatLab.setV_hostmod(objUtilitario.hostRealizaAccion());

		servicioDatLab.actualizarDatLabVinEmpresa(objDatLab);
		muestraBotonGrabarTrabajador = true;
		obtenerTrabajador();
		// return "pretty:principal";

	}

	public void seleccionar(SelectEvent event) {

		objSucursalTrab = direccionSeleccionada;
		
		System.out.println("COD DEP "+objSucursalTrab.getV_coddep());
		System.out.println("COD PROV "+objSucursalTrab.getV_codpro());
		System.out.println("COD DIS "+objSucursalTrab.getV_coddis());
		
		
		objDepartamentoTrab.setV_coddep(objSucursalTrab.getV_coddep());
		lstProvinciaTrab = servicioMantenimiento
				.listarProvincia(objDepartamentoTrab);
		objProvinciaTrab.setV_coddep(objSucursalTrab.getV_coddep());
		objProvinciaTrab.setV_codpro(objSucursalTrab.getV_codpro());
		
		lstDistritoTrab = servicioMantenimiento
				.listarDistrito(objProvinciaTrab);
		muestraBotonActualizarDireccion = false;

		System.out.println("CODIGO DE DIRECCION QUE SELECCIONA "
				+ objSucursalTrab.getN_codsuc());
		

		objTrabajador.setObjSucursalTrab(objSucursalTrab);

		

	}

	public void muestraNuevaDireccion() {
		
	
		
		
		RequestContext context = RequestContext.getCurrentInstance();
		context.addCallbackParam("esNuevaDireccion", true);
		
		lstDepartamentoTrab = new ArrayList<Departamento>();
		lstProvinciaTrab = new ArrayList<Provincia>();
		lstDistritoTrab = new ArrayList<Distrito>();
		
		System.out.println("MUESTRA NUEVA DIRECCION TRABAJADOR");
		objSucursalTrab = new Sucursal();
		objSucursalTrab.setN_codsuc(-2);
		
		
		
		Departamento objDepartamento = new Departamento();
		objDepartamento.setV_coddep("15");
		lstDepartamentoTrab=servicioMantenimiento.listarDepartamentoxCodigo(objDepartamento);
		lstProvinciaTrab=servicioMantenimiento.listarProvincia(objDepartamento);
				
		for(Provincia objProv:lstProvinciaTrab){
					if(objProv.getV_codpro().equals("01")){
						lstDistritoTrab=servicioMantenimiento.listarDistrito(objProv);
					}
					
		}
				
			
		
		
		
	}
	
	public void muestraActualizarDireccion() {
		
		//objSucursalTrab = direccionSeleccionada;
		
	
		System.out.println("SE SELECCIONO SUCURSAL "+objSucursalTrab.getN_codsuc());
		
		RequestContext context = RequestContext.getCurrentInstance();
		context.addCallbackParam("esNuevaDireccion", false);
		
		lstDepartamentoTrab = new ArrayList<Departamento>();
		lstDepartamentoTrab = servicioMantenimiento.listarDepartamento();
		lstProvinciaTrab = new ArrayList<Provincia>();
		
		Departamento d= new Departamento();
		d.setV_coddep(objSucursalTrab.getV_coddep());
		lstProvinciaTrab = servicioMantenimiento.listarProvincia(d);
		
		
		Provincia p = new Provincia();
		p.setV_coddep(objSucursalTrab.getV_coddep());
		p.setV_codpro(objSucursalTrab.getV_codpro());
		lstDistritoTrab = new ArrayList<Distrito>();
		lstDistritoTrab = servicioMantenimiento.listarDistrito(p);
		
		
	}

	public void inicializarTrabajador() {
		//objTrabajador = null;
		objTrabajador = new Trabajador();
		
		nroDocumentoTrab="";
		objTipoDocumentoIdentidadTrab.setV_codtdocide(lstTipoDocumentoIdentidadTrab.get(0).getV_codtdocide());
		
		objNivelEducativo.setV_codnivedu(lstNivelEducativo.get(0).getV_codnivedu());
		
		
		
	}

	public void seleccionaSiDiscapacidad() {
		
	}

}
